﻿using Anderson.Utils;

namespace Anderson.PluginFramework
{
    public interface IPlugin
    {
        IFramework Framework { get; set; }
        ILog Log { get;  set; }        
        PluginEntity Entity { get; set; }
        void Load();
        void Run();
        void Stop();        
        /// <summary>
        /// 插件从平台上卸载，这个方法是用来释放资源的路口
        /// </summary>
        void Uninstall();
        bool IsGameObjectActivator { get; }
        IPluginActivator ActivatorInstance { get; }

        bool Resolved { get; set; }
        bool Started { get; set; }
    }
}